package com.card.server.domain;

import lombok.Data;

import java.util.List;

/**
 * @author TISNIW
 * @version 1.0
 * @date 2025/5/29 0:13
 * @desc
 */
import java.util.List;
@Data
public class GameInfo {
    // 游戏唯一标识符，用于 Redis 缓存、匹配等
    private String gameKey;

    // 当前房间或游戏中所有玩家的列表
    private List<Player> players;

    // 上一手出的牌
    private List<Card> lastCards;

    // 上一手出牌的玩家编号（例如 0,1,2）
    private Integer lastPlayer;
    //下一手出牌玩家编号
    private Integer nextPlayer;

    // 上一手出牌的类型（如单张、对子、顺子等）
    private CardType cardType;

    // 当前轮到谁出牌（玩家编号）
    private Integer currentPlayer;
    private Integer index;

    // 地主玩家编号
    private Integer landlordPlayer;

    // 手牌状态：0-等待叫地主，1-叫地主阶段，2-出牌阶段，3-游戏结束
    private Integer status;

    // 叫地主阶段的信息（可选）
    private List<LandlordAuction> landlordAuction;
    // 是否是地主方胜利（游戏结束后使用）
    private Boolean isLandlordWin;
    // 游戏开始时间
    private Long startTime;
    // 游戏结束时间（如果已结束）
    private Long endTime;

    // 其他元信息（如底牌、炸弹数统计等）
    private List<Card> bottomCards; // 底牌
    private Integer bombCount;      // 当前局中炸弹次数

    public GameInfo(List<Card> bottomCards, Integer bombCount, Long startTime, String gameKey, List<Player> players, Integer status) {
        this.bottomCards = bottomCards;
        this.bombCount = bombCount;
        this.startTime = startTime;
        this.gameKey = gameKey;
        this.players = players;
        this.status = status;
    }
}
